/**
 * @typedef {Object} StringResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {string} data - the string data.
 */

/**
 * @typedef {Object} StringArrayResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {string[]} data - the string data.
 */

/**
 * @typedef {Object} LongResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {number} data - the string data.
 */

/**
 * The common response object
 * @typedef {Object} BooleanResponse
 * @property {number} status  - the response status
 * @property {boolean} data   - the success or failure data.
 * @property {string} message - the response message
 */

/**
 * @typedef {Object} HeartBeatPO
 * @property {number} baseHeight - the base height
 * @property {string[]} ipPortList - the ipPort list.
 */

/**
 * @typedef {Object} HeartBeatPOResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {HeartBeatPO} data - the heartbeat data.
 */

/**
 * @typedef {Object} BaseNodeInfoPO
 * @property {string} version - the node version
 * @property {string} role - the node rule
 * @property {string} protolVersion - the protol version
 * @property {string} publicIP - the node public ip
 * @property {string} localIP - the node local ip
 * @property {number} port - the node port
 * @property {number} baseHeight - the node base height
 * @property {string} publicKey - the node public key
 */


/**
 * @typedef {Object} BaseNodeInfoPOResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {BaseNodeInfoPO} data - the base node info data.
 */

/**
 * @typedef {Object} TransactionPO
 * @property {string} txIdHexStr - the tx id hex string
 * @property {number} type - the type of transaction
 * @property {string} inputsHexStr - the inputs hex string
 * @property {string} outputsHexStr - the outputs hex string
 * @property {number} createTime - the create time of the transaction
 */

/**
 * @typedef {Object} MyBlockData
 * @property {string} [ipPort] - the ip port
 * @property {string} [channelId] - the channel id
 * @property {string} blockHeaderHexString - the block header hex string
 */

/**
 * @typedef {Object} MyBlockDataResponse
 * @property {number} status - the response status
 * @property {string} message - the response message
 * @property {MyBlockData} data - the MyBlockData
 */
